package com.learn;

import java.util.Arrays;

public class selectionSort {
    public static void selectionSort(int[] array) {
        int len = array.length;
        if (len <= 1) {
            return;
        }
        //初始状态有序空间为空，无序空间R[1,n](第一个元素到最后一个元素)
        //每走一趟，无序空间少一个元素，有序空间多一个元素，直到走完整个数组，数组变得有序
        for (int i = 0; i < len; i++) {
            //找到未排序区间的最小元素的下标
            int minIndex = i;
            for (int j = i; j < len; j++) {
                if (array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
            //交换未排序区间最小元素与当前元素
            int current = array[i];
            array[i] = array[minIndex];
            array[minIndex] = current;
        }
    }

    public static void main(String[] args) {
        int[] array = {2, 1, 7, 3, 7, 9, 5};
        selectionSort(array);
        System.out.println(Arrays.toString(array));
    }
}
